Additional Input Sources For Data Acquisition At Distributed Scan Management Systems

ABSTRACT

A method and apparatus is provided for acquiring document data from additional input sources to a DSM system. In an embodiment, a DSM computing device includes a remote image receiver service configured to connect to a remote image source via a network connection, receive configuration information and image data from the remote image source, and determine post scan processing instructions based, at least in part, on the configuration information. In another embodiment, a DSM computing device includes an input selection service configured to identify one or more input sources available at the computing device, receive input source information identifying a particular input source of the one or more input sources, receive image information identifying the particular image data residing on the particular input source, retrieve the particular image data from the particular input source, and make the particular image data available to a distributed scan management service.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to U.S. patent application Ser. No.13/331,992, (Attorney Docket Number 49986-0739), filed Dec. 20, 2011,entitled “Content-Based Security Processing Using Distributed ScanManagement Protocols”, the entire disclosure of which is herebyincorporated by reference as if fully set forth herein.

This application is related to U.S. patent application Ser. No. ______,(Attorney Docket Number 49986-0741), filed MM-DD-YYYY, entitled “DSMQuotas”, the entire disclosure of which is hereby incorporated byreference as if fully set forth herein.

FIELD OF THE INVENTION

The present invention relates to acquiring image data, by an enterprisescanning system, from additional input sources to the scanning system.

BACKGROUND

An enterprise scanning system implements protocols that allow forentities to easily route documents that enter the system via a scanningdevice according to rules determined by system administrators and/orusers of scanning devices. An example enterprise scanning system isDistributed Scan Management (DSM) implemented by Microsoft and deployedin Windows 7/Windows 2008 Server R2.

An enterprise scanning system that is implemented using DSM (a “DSMsystem”) allows a user to authenticate user data via a DSM scanningdevice and to select from one or more sets of post scan processinginstructions that are made available to the user. A set of post scanprocessing instructions (PSP) contains instructions for routing acquireddocuments, including one or more destinations to which acquired documentdata should be sent. For example, a PSP may indicate that acquireddocument data should be emailed to one or more email addresses, copiedto one or more specified file servers, uploaded to one or more specifiedwebsites, etc. A PSP may also include, among other things, settings forscanning data such as color style, scan resolution, file format type,etc.

After a user is authenticated and has selected a PSP, the user may scandocument data into the system at the DSM scanning device. The DSM systemprocesses the scanned document data according to the selected PSP.

DSM systems do not allow data acquisition in manners other than viascanning. This limitation of the manner of introducing data into a DSMsystem limits the usefulness of processing document data using the DSMsystem. It would be advantageous for a DSM system to allow users tointroduce document data for processing by the DSM system from bothscanners and other types of input sources external to the DSM system.

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

SUMMARY

An approach is provided for acquiring document data from additionalinput sources to a DSM system. In an embodiment, a computing devicethrough which the document data is acquired includes a distributed scanmanagement service that implements a distributed scan device protocoland a distributed scan processing protocol. The distributed scanmanagement service is configured to send image data and post scanprocessing instructions to a scan server. The computing device alsoincludes a remote image receiver service configured to connect to aremote image source via the network connection, receive configurationinformation and the image data from the remote image source, anddetermine the post scan processing instructions based, at least in part,on the configuration information.

In embodiments, the computing device also includes a configurationservice configured to authenticate user information, retrieve one ormore sets of post scan processing instructions associated with the userinformation, receive selection of the post scan processing instructions,which is a particular set of post scan processing instructions from theone or more sets of post scan processing instructions, and associate aconfiguration identifier with the user information and the post scanprocessing instructions. In such embodiments, the configurationinformation comprises the configuration identifier. In furtherembodiments, the configuration information comprises an identifier ofthe post scan processing instructions.

Embodiments include the remote image receiver service further configuredto connect to the remote image source via the network connection usingWeb services, and receive the configuration information and the imagedata from the remote image source using Web services.

In an embodiment, a computing device through which the document data isacquired includes a distributed scan management service that implementsa distributed scan device protocol and a distributed scan processingprotocol. The distributed scan management service is configured toreceive information for post scan processing instructions, and sendparticular image data and the post scan processing instructions to ascan server. The computing device also includes an input selectionservice configured to identify one or more input sources available atthe computing device, receive input source information identifying aparticular input source of the one or more input sources, receive imageinformation identifying the particular image data residing on theparticular input source, retrieve the particular image data from theparticular input source, and make the particular image data available tothe distributed scan management service. In a further embodiment, thecomputing device includes a scan service configured to scan a document,wherein the particular image data is not generated by the scan service.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 is a block diagram that depicts an example network arrangementfor acquiring document data from additional input sources to a DSMsystem.

FIG. 2 illustrates a flowchart for initializing a configurationidentifier for a remote image source.

FIG. 3 illustrates a flowchart for a DSM system acquiring image datafrom a remote image source.

FIG. 4 illustrates a flowchart for processing image data from a selectedinput source.

FIG. 5 is a block diagram of a computer system on which embodiments ofthe invention may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

General Overview

An approach is provided for acquiring document data from additionalinput sources to a DSM system. In an embodiment, a computing devicethrough which the document data is acquired includes a distributed scanmanagement service that implements a distributed scan device protocoland a distributed scan processing protocol. The distributed scanmanagement service is configured to send image data and post scanprocessing instructions to a scan server. The computing device alsoincludes a remote image receiver service configured to connect to aremote image source via the network connection, receive configurationinformation and the image data from the remote image source, anddetermine the post scan processing instructions based, at least in part,on the configuration information.

In embodiments, the computing device also includes a configurationservice configured to authenticate user information, retrieve one ormore sets of post scan processing instructions associated with the userinformation, receive selection of the post scan processing instructions,which is a particular set of post scan processing instructions from theone or more sets of post scan processing instructions, and associate aconfiguration identifier with the user information and the post scanprocessing instructions. In such embodiments, the configurationinformation comprises the configuration identifier. In furtherembodiments, the configuration information comprises an identifier ofthe post scan processing instructions.

Embodiments include the remote image receiver service further configuredto connect to the remote image source via the network connection usingWeb services, and receive the configuration information and the imagedata from the remote image source using Web services.

In an embodiment, a computing device through which the document data isacquired includes a distributed scan management service that implementsa distributed scan device protocol and a distributed scan processingprotocol. The distributed scan management service is configured toreceive information for post scan processing instructions, and sendparticular image data and the post scan processing instructions to ascan server. The computing device also includes an input selectionservice configured to identify one or more input sources available atthe computing device, receive input source information identifying aparticular input source of the one or more input sources, receive imageinformation identifying the particular image data residing on theparticular input source, retrieve the particular image data from theparticular input source, and make the particular image data available tothe distributed scan management service. In a further embodiment, thecomputing device includes a scan service configured to scan a document,wherein the particular image data is not generated by the scan service.

Architecture for Processing Acquired Document Data

FIG. 1 is a block diagram that depicts an example network arrangement100 for acquiring document data from additional input sources to the DSMsystem represented in example network arrangement 100, according toembodiments. Network arrangement 100 includes a DSM device 110, a serverdevice 120, and computing devices 140 and 150, communicatively coupledvia a network 130. The DSM system represented in example networkarrangement 100 includes the services and servers on DSM device 110,server device 120, and computing device 140, and may include otherservices and servers according to a particular implementation.

In example network arrangement 100, DSM device 110 is configured toacquire document data via selected or remote input sources, and processthe data according to a selected PSP, as described in further detailbelow. An input source may be external to the DSM system of examplenetwork arrangement 100, i.e., an input source that is physicallyseparate from devices that host services and servers for the DSM system.An input source that is external to the DSM system of example networkarrangement 100 may be communicatively connected to a device that hostsone or more services and/or servers for the DSM system, e.g., vianetwork 130, via a USB port, serial port, or other physical connectionreceptor of a device that hosts one or more services and/or servers forthe DSM system, etc.

DSM device 110 may be implemented by any type of device that is capableof acquiring document data, implementing a distributed scan deviceprotocol and a distributed scan processing protocol, and communicatingwith one or more of server device 120, computing device 140, andcomputing device 150 via network 130. A description of a distributedscan device protocol may be found in “DISTRIBUTED SCAN DEVICE WEBSERVICE PROTOCOL SUMMARY” located at“en-us/library/windows/hardware/ff540604%28v=VS.85%29.aspx” on theserver “msdn.microsoft.com”, the contents of which are incorporated byreference as if fully set forth herein. Further, a description of adistributed scan processing protocol may be found in “DISTRIBUTED SCANPROCESSING WEB SERVICE PROTOCOL SUMMARY” located at“en-us/library/windows/hardware/ff540624%28v=VS.85%29.aspx” on theserver “msdn.microsoft.com”, the contents of which are also incorporatedby reference as if fully set forth herein.

In example network arrangement 100, DSM device 110 is configured with aDSM support service 111, a scan service 112, an input selection service113, a configuration service 114, a remote image receiver service 115,and a graphical user interface 116. DSM device 110 may be configuredwith other mechanisms, processes and functionality, depending upon aparticular implementation. According to particular embodiments, DSMdevice 110 may be configured without one or more of the servicesassociated therewith in example network arrangement 100. The approachesdescribed herein for processing acquired document data are not limitedto any particular type of DSM device or network configuration. Forexample, implementations of DSM device 110 may include a computingdevice, a scanning device, a multi-function peripheral (MFP) thatperforms any combination of printing, copying, facsimile, and scanning,etc. Any number of devices, including printing devices, scanningdevices, client devices, administrative console devices, and othercomputing devices, may be included in the network.

DSM support service 111 may be implemented by one or more processes, andcommunicates with other applications and network devices. Thesecommunications include communications via (a) a distributed scan deviceprotocol to communicate with a control point, e.g., control pointservice 142 of computing device 140; and (b) a distributed scanprocessing protocol to communicate with a scan server, e.g., scan server122 of server device 120. In an embodiment, one or more of the protocolsimplemented by DSM support service 111 are performed using Web services.In an embodiment, all of the communications made by DSM device 110 vianetwork 130 is done using Web services. In these embodiments, at leastDSM support service 111, configuration service 114, remote imagereceiver service 115, scan server 122, Active Directory server 124,control point service 142, and image transmission service 152 implementone or more Web services protocols, described in more detail below.

Scan service 112 is implemented by one or more processes for acquiringdocument data via a scanning device at DSM device 110 or made availableto DSM device 110, e.g., via network 130. Input selection service 113 isimplemented by one or more processes configured to identify one or moreinput sources available at DSM device 110 and retrieve image data froman available input source, as described in further detail below.Configuration service 114 is implemented by one or more processesconfigured to associate user information and selected post scanprocessing instructions with a configuration identifier, and is alsodescribed in further detail below. Remote image receiver service 115 isimplemented by one or more processes configured to connect to a remoteimage source and receive image data from the remote image source, and isalso described in further detail below. The services attributed to DSMdevice 110 in example network arrangement 100 are illustrative and thefunctions attributed to these services herein may be performed by anylogical module at DSM device 110.

DSM support service 111, scan service 112, input selection service 113,configuration service 114, and remote image receiver service 115 may beimplemented as resident processes on DSM device 110, e.g., as Javaservlets. Alternatively, one or more of DSM support service 111, scanservice 112, input selection service 113, configuration service 114, andremote image receiver service 115 may be made available to DSM device110 on removable media or may be implemented at a remote location withrespect to DSM device 110. Also, DSM support service 111, scan service112, input selection service 113, configuration service 114, and remoteimage receiver service 115 may be implemented as plug-ins, or inhardware, software, or any combination of hardware or software,depending upon a particular implementation.

DSM device 110 is further configured with graphical user interface 116.Graphical user interface 116 may be displayed at a display deviceassociated with DSM device 110. A display device may be a monitor, ascreen on DSM device 110, etc. Graphical user interface 116 may beimplemented in a browser, as a stand-alone application, etc., and may bemanaged by any service at DSM device 110.

Network 130 may be implemented with any type of medium and/or mechanismthat facilitates the exchange of information between two or more of DSMdevice 110, server device 120, and computing devices 140 and 150.Furthermore, network 130 may use any type of communications protocol,and may be secured or unsecured, depending upon the requirements of aparticular embodiment.

Server device 120 may be implemented by any type of device that iscapable of communicating with DSM device 110 and/or computing device 140over network 130. In example network arrangement 100, server device 120is configured with scan server 122 and Active Directory server 124,described in further detail below. Server device 120 may be configuredwith other mechanisms, processes and functionality, depending upon aparticular implementation. In embodiments, scan server 122 and ActiveDirectory server 124 are implemented as resident processes on Serverdevice 120. In other embodiments, one or more of scan server 122 andActive Directory server 124 are made available to server device 120 onremovable media or may be implemented at a remote location with respectto server device 120. Also, scan server 122 and Active Directory server124 may be implemented as plug-ins, or in hardware, software, or anycombination of hardware or software, depending upon a particularimplementation.

Computing devices 140 and 150 may be implemented by any type ofcomputing device that is capable of communicating with DSM device 110and/or server device 120 over network 130. In example networkarrangement 100, computing device 140 is configured with a control pointservice 142. Also in example network arrangement 100, computing device150 is configured with an image transmission service 152 that may act asa remote image source that communicates with remote image receiverservice 115 on DSM device 110, and is described in further detail below.In an embodiment, computing device 150 is capable of producing images.In this embodiment, computing device 150 may be a camera, a scanner, acopier, or any other device that produces image data. Computing devices140 and 150 may be configured with other mechanisms, processes andfunctionalities, depending upon a particular implementation.

DSM Communications

DSM device 110 is considered to be a DSM-type device because DSM device110, via DSM support service 111, communicates with control pointservice 142 using a distributed scan device protocol and with scanserver 122 using a distributed scan processing protocol. In anembodiment, DSM support service 111 communicates with Active Directoryserver 124 via Lightweight Directory Access Protocol (LDAP).

Control point service 142 allows administrators to define PSPs andassociate defined PSPs with one or more users or user groups. Controlpoint service 142 causes information for the PSPs to be made accessibleto Active Directory server 124. For example, control point service 142stores PSP information at memory for server device 120 that isaccessible by Active Directory server 124. In an embodiment, controlpoint service 142 communicates with Active Directory server 124 viaLDAP.

Web Services

The World Wide Web Consortium (W3C), which is an internationalconsortium that develops standards for the World Wide Web, defines a“Web service” as a software system that is designed to supportinteroperable machine-to-machine interaction over a network. Thisdefinition encompasses many different systems, but in common usage, theterm refers to those services that use Simple Object Access Protocol(SOAP)-formatted Extensible Markup Language (XML) envelopes and thathave interfaces described using Web Services Description Language(WSDL). Web services allow devices and applications to communicate witheach other over one or more networks without the intervention of anyhuman being, while using the same suite of protocols (e.g., HypertextTransfer Protocol (HTTP)) that a human being would use to communicatewith such devices and applications over the one or more networks.

SOAP is an XML-based, extensible message envelope format, with bindingsto underlying protocols (e.g., HTTP and Simple Mail Transfer Protocol(SMTP)). Using XML, SOAP defines how messages should be formatted, sothat those messages are formatted in such a way that the recipients ofthose messages (devices and applications) can understand the messages.

WSDL is an XML format that allows Web service interfaces to be describedalong with the details of those interfaces' bindings to specificprotocols. WSDL is typically used to generate server and client code,and for configuration.

Thus, common core protocols of Web services are SOAP, and WSDL, as wellas WS-Discovery, WS-MetadataExchange, WS-Transfer, WS-Eventing, andWS-Addressing. WS-Addressing defines two constructs, message addressingproperties and endpoint references. The constructs normalize theinformation typically provided by transport protocols and messagingsystems in a way that is independent of any particular transport ormessaging system. (Web Services Addressing 1.0—Core, W3C Recommendation9 May 2006 found at “TR/ws-addr-corer on the server “www.w3.org”,published by the W3C, the contents of which are incorporated herein byreference.) A Web service endpoint is a (referenceable) entity,processor, or resource to which Web service messages can be addressed.(Id.) Endpoint references convey the information needed to address a Webservice endpoint. (Id.)

Authentication and Configuration Identifiers

In an embodiment, a user may cause the DSM system represented in examplenetwork arrangement 100 to process image data that is available on aremote image source, such as image transmission service 152 of computingdevice 150. Many professionals utilize image data in the course ofemployment, and remote access to a DSM system allows users that are atremote locations relative to physical components of the DSM system tocause the DSM system to process image data. For example, a user desiresthe DSM system of network arrangement 100 to process image data that isstored at computing device 150. In an embodiment where computing device150 has camera functionality, the image data may be captured by the userwith the camera functionality of computing device 150.

As previously indicated, a DSM system processes image data according toPSP that is selected by a user. According to an embodiment, a remoteimage source is configured with a configuration identifier that ismapped to both particular user information and PSP in a particular DSMsystem. The remote image source sends the configuration identifier tothe DSM system with the image data that is to be processed by the DSMsystem. The DSM system processes the received image data according tothe PSP associated with the configuration identifier. A remote imagesource may send a particular configuration identifier to the DSM systemwith image data for multiple images.

FIG. 2 illustrates a flowchart 200 for initializing a configurationidentifier for a remote image source. Ordering of the steps offlowcharts herein are exemplary, and do not necessarily limitembodiments of the invention to such ordering. At step 202, userinformation is authenticated. For example, a user inputs userinformation to DSM device 110 via graphical user interface 116. DSMsupport service 111 authenticates the user information with ActiveDirectory server 124. If Active Directory server 124 does notauthenticate the user information, then Active Directory server 124returns an error to DSM support service 111.

At step 204, one or more sets of post scan processing instructionsassociated with the user information are retrieved. For example, ActiveDirectory server 124 returns a list of PSPs associated with theauthenticated user information to DSM support service 111. DSM supportservice 111 displays the list of PSPs at graphical user interface 116.

At step 206, selection of post scan processing instructions, which is aparticular set of post scan processing instructions from the one or moresets of post scan processing instructions, is received. For example, DSMsupport service 111 receives selection of a particular PSP of thedisplayed list of PSPs via graphical user interface 116. The selectedPSP may be configured for processing image data that is received from aremote image source.

At step 208, a configuration identifier is associated with the userinformation and the post scan processing instructions. For example,configuration service 114 creates a configuration identifier andassociates the configuration identifier with the authenticated userinformation and the PSP that was selected at step 206. A mapping between(a) the configuration identifier and (b) the authenticated userinformation and selected PSP is stored at DSM device 110. Aconfiguration identifier may be a sequence of alphanumeric charactersthat uniquely identifies the selected user information/PSP pair amongother user information/PSP pairs stored at DSM device 110.

In one embodiment, configuration service 114 causes the configurationidentifier created at step 208 to be displayed at graphical userinterface 116. The user may input the displayed configuration identifierinto image transmission service 152, as described in further detailbelow.

According to another embodiment, a user may be provided with aconfiguration identifier that is already mapped, at DSM device 110, tothe user's information and a particular PSP. For example, anadministrator of the system may create a configuration identifier,associate the configuration identifier with the user's information and aPSP that is appropriate for remote image acquisition. A user may inputthe configuration identifier into image transmission service 152, asdescribed in further detail below.

In yet another embodiment, an administrator user configures a particularPSP for processing image data received from a remote image source andassociates the PSP with a default user account at Active Directoryserver 124. A default user account is a user account with authenticationinformation that is known to configuration service 114. Theadministrator user maps a PSP identifier to the PSP at DSM device 110. Auser may input the PSP identifier into image transmission service 152,as described in further detail below. A PSP identifier may be a sequenceof alphanumeric characters that uniquely identifies the PSP associatedwith the default user account. Image transmission service 152 may send aparticular PSP identifier to the DSM system with image data for multipleimages.

Configuration of a Remote Image Source

As previously indicated, a user may input configuration information(e.g., a configuration identifier, a PSP identifier, etc.) into a remoteimage source, such as image transmission service 152 of computing device150. In one embodiment, image transmission service 152 provides agraphical user interface through which a user inputs configurationinformation to the service. In another embodiment, a user communicatesthe configuration information to image transmission service 152 viaemail, text message, using voice recognition, or in any other manner.

Acquisition from Remote Image Source

FIG. 3 illustrates a flowchart 300 for a DSM system acquiring image datafrom a remote image source. At step 302, a computing device is connectedto a remote image source via a network connection, wherein the computingdevice implements a distributed scan device protocol and a distributedscan processing protocol. For example, remote image receiver service 115at DSM device 110 and image transmission service 152 at computing device150 connect using Web services (such as WS-Discovery, WS-Transfer, andWS-MetadataExchange) via network 130. As previously indicated, DSMdevice 110 communicates with control point service 142 using adistributed scan device protocol and with scan server 122 using adistributed scan processing protocol.

In one embodiment, image transmission service 152 is configured withinformation needed to connect to remote image receiver service 115 atDSM device 110 via Web services. For example, a user may input, to imagetransmission service 152, information that identifies remote imagereceiver service 115 for WS-Discovery, including a service type and aunique identifier for the DSM system represented in network arrangement100. A unique identifier for the DSM system represented in networkarrangement 100 uniquely identifies the DSM system among all other DSMsystems accessible via network 130. As another example, computing device150 is configured with information identifying remote image receiverservice 115 for WS-Discovery in storage accessible to image transmissionservice 152, e.g., in a database.

For example, to connect to remote image receiver service 115, imagetransmission service 152 sends a multicast Probe message over network130. The multicast Probe message indicates that image transmissionservice 152 seeks target services of a certain type, i.e., a remoteimage receiver service at a particular DSM system. For example, themulticast Probe message includes the service type indicator“RemoteImageReceiver”. Image transmission service 152 also includes, inthe Probe message, a unique identifier of the particular DSM system withwhich image transmission service 152 seeks to connect, i.e., the DSMsystem of network arrangement 100. The Probe message may also includeinformation about other aspects of the service sought by imagetransmission service 152.

Remote image receiver service 115, available on DSM device 110, isaccessible over network 130 and receives the multicast Probe messagefrom image transmission service 152. Remote image receiver service 115determines that remote image receiver service 115 is a service of type“RemoteImageReceiver”, that remote image receiver service 115 isassociated with the particular DSM system indicated by the DSM systemidentifier, and that remote image receiver service 115 complies with allother aspects of the requested service, as indicated by the Probemessage.

In response to this determination, remote image receiver service 115sends a unicast Probe Match message to image transmission service 152 toindicate that DSM device 110 includes a service of the requested type,i.e., remote image receiver service 115. Such a Probe Match messageincludes an endpoint reference for remote image receiver service 115.The endpoint reference may include a source IP address for remote imagereceiver service 115, including a port number at which remote imagereceiver service 115 may be accessed. For example, the Probe Matchmessage sent by remote image receiver service 115 may indicate to imagetransmission service 152 that remote image receiver service 115 is at IPaddress “172.30.4.223”, and is accessible at port “1600”. Imagetransmission service 152 uses this endpoint reference to communicateimage data and configuration information to remote image receiverservice 115.

In another embodiment, image transmission service 152 acceptsconfiguration information and/or endpoint reference information forremote image receiver service 115, e.g., via a graphical user interfaceat computing device 150. Image transmission service 152 uses thereceived information to communicate with remote image receiver service115 via Web services. In yet another embodiment, computing device 150includes one or more of configuration information and an endpointreference for remote image receiver service 115 in storage accessible byimage transmission service 152. In yet another embodiment, DSM device110 includes endpoint reference information for image transmissionservice 152 in storage accessible by remote image receiver service 115.

At step 304, connection information and image data are received at thecomputing device from the remote image source. For example, imagetransmission service 152 is configured with a configuration identifier.Image transmission service 152 sends the configuration identifier andimage data to remote image receiver service 115 using Web services. Inan embodiment, image transmission service 152 uses the SOAP MessageTransmission Optimization Mechanism (MTOM) protocol to send the imagedata to remote image receiver service 115.

Remote image receiver service 115 listens for such communications fromimage transmission service 152, and receives the configurationidentifier and image data from image transmission service 152 when theinformation is sent. Depending upon a particular implementation, remoteimage receiver service 115 may receive further information from imagetransmission service 152, including one or more of image formatinformation, image size information, etc.

In an embodiment, remote image receiver service 115 receives a PSPidentifier and image data from image transmission service 152.

At step 306, post scan processing instructions are determined based, atleast in part, on the connection information. For example, remote imagereceiver service 115 causes configuration service 114 to retrieve theuser information and PSP information mapped to the receivedconfiguration identifier. In one embodiment, configuration service 114authenticates the user information and verifies that the PSP informationis valid. PSP information is valid if the user information is stillassociated with the identified PSP. If the user information does notauthenticate or the PSP information is not valid, then the services ofDSM device 110 do not continue with the steps of flowchart 300. If theuser information authenticates and the PSP information is valid, thenconfiguration service 114 communicates the identified PSP to remoteimage receiver service 115. The identified PSP will be used to processthe received image data.

In an embodiment where the configuration information sent from imagetransmission service 152 comprises a PSP identifier, configurationservice 114 retrieves the applicable PSP based on the PSP identifier.For example, configuration service 114 recognizes that the PSPidentifier identifies a PSP associated with a default user account (forwhich authentication information is known by configuration service 114)and searches for a mapping between the PSP identifier and a PSPassociated with the default user account. For example, configurationservice 114 may authenticate the known default user information withActive Directory server 124 in order to obtain the PSPs associated withthe default user account. If the PSP identifier is mapped to a PSPassociated with the default user account, then the identified PSP isused to process the received image data. If the PSP identifier is notmapped to a PSP associated with the default user account, then theservices of DSM device 110 do not continue with the steps of flowchart300.

In an embodiment where the identified PSP includes data acquisitionsettings that are applicable to the manner of data acquisition used toacquire the image data, such settings are applied to received imagedata.

At step 308, the image data and the post scan processing instructionsare sent to a scan server. Within embodiments of the invention, anyservice running on DSM device 110 may send information for the imagedata and identified PSP to scan server 122 for processing, including DSMsupport service 111, configuration service 114, remote image receiverservice 115, etc. To illustrate one embodiment, remote image receiverservice 115 calls an API function for DSM support service 111 and passesto DSM support service 111 the identified PSP and information for thereceived image data (i.e., a reference to the received image data storedat DSM device 110, the received image data itself, etc.). DSM supportservice 111 transmits the PSP and information for the received imagedata to scan server 122 using a distributed scan processing protocol.Scan server 122 processes the image data according to the accompanyingPSP, including dispatching at least a portion of the image data to thedestinations defined in the accompanying PSP.

In one embodiment, image transmission service 152 sends configurationinformation to remote image receiver service 115 separately with imagedata corresponding to each image file. In another embodiment, imagetransmission service 152 sends configuration information to remote imagereceiver service 115 with information for image data corresponding tomultiple image files.

Status Update

Image transmission service 152 may request, from remote image receiverservice 115, information on the status of processing image data thatimage transmission service 152 has sent to remote image receiver service115. To illustrate, image transmission service 152 sends a request toremote image receiver service 115, via Web services, requesting thestatus of processing particular image data. Image transmission service152 may identify particular image data in the request using an imagedata identifier that uniquely identifies image data that has been sentto remote image receiver service 115. In response to receiving therequest, remote image receiver service 115 retrieves information on thestatus of processing the particular image data, e.g., from DSM supportservice 111. An example of information on the status of processingparticular image data is “Complete”, “Pending”, “Cancelled”, etc.

Acquisition from Selected Input Source

In an embodiment, the DSM system represented in network arrangement 100processes image data that is acquired from an input source that isselected by a user at DSM device 110. For example, a user may requestthat the DSM system represented in network arrangement 100 process imagedata stored on an additional input source to the DSM system, such as athumb drive, external hard drive, SD card, or any other device that maysupply image data to DSM device 110. The user identifies an input sourceavailable at DSM device 110, and, if applicable, may select image datathat is stored at the input source, which causes DSM device 110 toacquire the image data from the input source and initiate processing theimage data according to a selected PSP.

FIG. 4 illustrates a flowchart 400 for processing image data from aselected input source. At step 402, information for post scan processinginstructions is received at a computing device, wherein the computingdevice implements a distributed scan device protocol and a distributedscan processing protocol. For example, a particular user inputs userauthentication information to DSM device 110 via graphical userinterface 116. DSM support service 111 authenticates the userinformation with Active Directory server 124. Active Directory server124 returns, to DSM support service 111, a list of PSPs that areassociated with the authenticated user. DSM support service 111 causesthe list of PSPs to be displayed at graphical user interface 116. Whenthe user selects a particular PSP from the list of PSPs, e.g., viagraphical user interface 116, DSM support service 111 receivesinformation for the selected PSP. As previously indicated, DSM device110 communicates with control point service 142 using a distributed scandevice protocol and with scan server 122 using a distributed scanprocessing protocol.

At step 404, one or more input sources available at the computing deviceare identified. For example, input selection service 113 of DSM device110 identifies one or more input sources available at DSM device 110. Aninput source that is available at DSM device 110 is a source that maysupply DSM device with image data. The one or more input sources mayinclude scan service 112, an SD card, a thumb drive connected to DSMdevice 110, an external hard drive connected to DSM device 110, or anyother device communicatively coupled to DSM device 110 that providesservices of DSM device 110 with image data. For example, a thumb drive(or other storage device) that is connected to a USB port (or any otherkind of port) of DSM device 110 is an input source available at DSMdevice 110. As another example, a service running on DSM device 110(such as scan service 112) that may supply DSM device with image data isan input source available at DSM device 110.

At step 406, input source information identifying a particular inputsource of the one or more input sources is received. For example, inputselection service 113 causes information for the one or more identifiedinput sources that are available at DSM device 110 to be displayed atgraphical user interface 116 for user selection. When the user selectsan input source of the one or more displayed input sources, inputselection service 113 receives information identifying the selectedinput source. In one embodiment, input selection service 113 receivesinformation identifying an input source other than scan service 112.

At step 408, image information identifying particular image dataresiding on the particular input source is received. For example, inputselection service 113 displays, at graphical user interface 116, adirectory listing reflecting information stored at the selected inputsource. The user may browse through the directory listing and select animage file, corresponding to particular image data, stored at the inputsource. Input selection service 113 receives information identifying theselected image file. In an embodiment, the user may select, forprocessing, multiple image files stored at the input source.

In an embodiment where the input source is not a storage device, inputselection service 113 receives information identifying particular imagedata from the input source. In an example where the selected inputsource is scan service 112, input selection service 113 receives scanneddocument data, which identifies the scanned document data as theparticular image data.

At step 410, the particular image data is retrieved from the particularinput source. For example, input selection service 113 retrieves theparticular image data corresponding to the selected image file from theselected input source based on the information identifying the selectedinput source and the information identifying the selected image file.

At step 412, the particular image data and the post scan processinginstructions are sent to a scan server. Within embodiments of theinvention, any service running on DSM device 110 may send informationfor the selected image data and PSP to a scan server for processing,including DSM support service 111, input selection service 113, etc. Toillustrate one embodiment, input selection service 113 calls an APIfunction for DSM support service 111 and passes to DSM support service111 the PSP and information for the particular image data (e.g., areference to the particular image data stored at DSM device 110, theparticular image data itself, etc.). DSM support service 111 transmitsthe PSP and information for the particular image data to scan server 122using a distributed scan processing protocol. Scan server 122 processesthe received image data according to the accompanying PSP, includingdispatching at least a portion of the received image data to thedestinations defined in the accompanying PSP.

In an embodiment, if the user selects multiple image files from theselected input source, input selection service 113 sends information forimage data corresponding to each of the multiple image files to scanserver 122 separately, each with the selected PSP.

Hardware Overview

According to one embodiment, the techniques described herein areimplemented by one or more special-purpose computing devices. Thespecial-purpose computing devices may be hard-wired to perform thetechniques, or may include digital electronic devices such as one ormore application-specific integrated circuits (ASICs) or fieldprogrammable gate arrays (FPGAs) that are persistently programmed toperform the techniques, or may include one or more general purposehardware processors programmed to perform the techniques pursuant toprogram instructions in firmware, memory, other storage, or acombination. Such special-purpose computing devices may also combinecustom hard-wired logic, ASICs, or FPGAs with custom programming toaccomplish the techniques. The special-purpose computing devices may bedesktop computer systems, portable computer systems, handheld devices,networking devices or any other device that incorporates hard-wiredand/or program logic to implement the techniques.

For example, FIG. 5 is a block diagram that illustrates a computersystem 500 upon which an embodiment of the invention may be implemented.Computer system 500 includes a bus 502 or other communication mechanismfor communicating information, and a hardware processor 504 coupled withbus 502 for processing information. Hardware processor 504 may be, forexample, a general purpose microprocessor.

Computer system 500 also includes a main memory 506, such as a randomaccess memory (RAM) or other dynamic storage device, coupled to bus 502for storing information and instructions to be executed by processor504. Main memory 506 also may be used for storing temporary variables orother intermediate information during execution of instructions to beexecuted by processor 504. Such instructions, when stored innon-transitory storage media accessible to processor 504, rendercomputer system 500 into a special-purpose machine that is customized toperform the operations specified in the instructions.

Computer system 500 further includes a read only memory (ROM) 508 orother static storage device coupled to bus 502 for storing staticinformation and instructions for processor 504. A storage device 510,such as a magnetic disk or optical disk, is provided and coupled to bus502 for storing information and instructions.

Computer system 500 may be coupled via bus 502 to a display 512, such asa cathode ray tube (CRT), for displaying information to a computer user.An input device 514, including alphanumeric and other keys, is coupledto bus 502 for communicating information and command selections toprocessor 504. Another type of user input device is cursor control 516,such as a mouse, a trackball, or cursor direction keys for communicatingdirection information and command selections to processor 504 and forcontrolling cursor movement on display 512. This input device typicallyhas two degrees of freedom in two axes, a first axis (e.g., x) and asecond axis (e.g., y), that allows the device to specify positions in aplane.

Computer system 500 may implement the techniques described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic which in combination with the computer system causes orprograms computer system 500 to be a special-purpose machine. Accordingto one embodiment, the techniques herein are performed by computersystem 500 in response to processor 504 executing one or more sequencesof one or more instructions contained in main memory 506. Suchinstructions may be read into main memory 506 from another storagemedium, such as storage device 510. Execution of the sequences ofinstructions contained in main memory 506 causes processor 504 toperform the process steps described herein. In alternative embodiments,hard-wired circuitry may be used in place of or in combination withsoftware instructions.

The term “storage media” as used herein refers to any non-transitorymedia that store data and/or instructions that cause a machine tooperation in a specific fashion. Such storage media may comprisenon-volatile media and/or volatile media. Non-volatile media includes,for example, optical or magnetic disks, such as storage device 510.Volatile media includes dynamic memory, such as main memory 506. Commonforms of storage media include, for example, a floppy disk, a flexibledisk, hard disk, solid state drive, magnetic tape, or any other magneticdata storage medium, a CD-ROM, any other optical data storage medium,any physical medium with patterns of holes, a RAM, a PROM, and EPROM, aFLASH-EPROM, NVRAM, any other memory chip or cartridge.

Storage media is distinct from but may be used in conjunction withtransmission media. Transmission media participates in transferringinformation between storage media. For example, transmission mediaincludes coaxial cables, copper wire and fiber optics, including thewires that comprise bus 502. Transmission media can also take the formof acoustic or light waves, such as those generated during radio-waveand infra-red data communications.

Various forms of media may be involved in carrying one or more sequencesof one or more instructions to processor 504 for execution. For example,the instructions may initially be carried on a magnetic disk or solidstate drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 500 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 502. Bus 502 carries the data tomain memory 506, from which processor 504 retrieves and executes theinstructions. The instructions received by main memory 506 mayoptionally be stored on storage device 510 either before or afterexecution by processor 504.

Computer system 500 also includes a communication interface 518 coupledto bus 502. Communication interface 518 provides a two-way datacommunication coupling to a network link 520 that is connected to alocal network 522. For example, communication interface 518 may be anintegrated services digital network (ISDN) card, cable modem, satellitemodem, or a modem to provide a data communication connection to acorresponding type of telephone line. As another example, communicationinterface 518 may be a local area network (LAN) card to provide a datacommunication connection to a compatible LAN. Wireless links may also beimplemented. In any such implementation, communication interface 518sends and receives electrical, electromagnetic or optical signals thatcarry digital data streams representing various types of information.

Network link 520 typically provides data communication through one ormore networks to other data devices. For example, network link 520 mayprovide a connection through local network 522 to a host computer 524 orto data equipment operated by an Internet Service Provider (ISP) 526.ISP 526 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the“Internet” 528. Local network 522 and Internet 528 both use electrical,electromagnetic or optical signals that carry digital data streams. Thesignals through the various networks and the signals on network link 520and through communication interface 518, which carry the digital data toand from computer system 500, are example forms of transmission media.

Computer system 500 can send messages and receive data, includingprogram code, through the network(s), network link 520 and communicationinterface 518. In the Internet example, a server 530 might transmit arequested code for an application program through Internet 528, ISP 526,local network 522 and communication interface 518.

The received code may be executed by processor 504 as it is received,and/or stored in storage device 510, or other non-volatile storage forlater execution.

In the foregoing specification, embodiments of the invention have beendescribed with reference to numerous specific details that may vary fromimplementation to implementation. The specification and drawings are,accordingly, to be regarded in an illustrative rather than a restrictivesense. The sole and exclusive indicator of the scope of the invention,and what is intended by the applicants to be the scope of the invention,is the literal and equivalent scope of the set of claims that issue fromthis application, in the specific form in which such claims issue,including any subsequent correction.

What is claimed is:
 1. A computing device comprising: a networkconnection; a distributed scan management service that implements adistributed scan device protocol and a distributed scan processingprotocol; wherein the distributed scan management service is configuredto: send image data and post scan processing instructions to a scanserver; a remote image receiver service configured to: connect to aremote image source via the network connection, receive configurationinformation and the image data from the remote image source, anddetermine the post scan processing instructions based, at least in part,on the configuration information.
 2. The computing device of claim 1,further comprising a configuration service configured to: authenticateuser information, retrieve one or more sets of post scan processinginstructions associated with the user information, receive selection ofthe post scan processing instructions, which is a particular set of postscan processing instructions from the one or more sets of post scanprocessing instructions, and associate a configuration identifier withthe user information and the post scan processing instructions.
 3. Thecomputing device of claim 2, wherein the configuration informationcomprises the configuration identifier.
 4. The computing device of claim1, wherein the configuration information comprises an identifier of thepost scan processing instructions.
 5. The computing device of claim 4,further comprising a configuration service configured to: authenticatedefault user information; and identify the post scan processinginstructions, based on the identifier of the post scan processinginstructions, among the one or more sets of post scan processinginstructions associated with the default user information.
 6. Thecomputing device of claim 1, wherein the remote image receiver service:connects to the remote image source via the network connection using Webservices; and receives the configuration information and the image datafrom the remote image source using Web services.
 7. A computing devicecomprising: a distributed scan management service that implements adistributed scan device protocol and a distributed scan processingprotocol; wherein the distributed scan management service is configuredto: receive information for post scan processing instructions, and sendparticular image data and the post scan processing instructions to ascan server; and an input selection service configured to: identify oneor more input sources available at the computing device, receive inputsource information identifying a particular input source of the one ormore input sources, receive image information identifying the particularimage data residing on the particular input source, retrieve theparticular image data from the particular input source, and make theparticular image data available to the distributed scan managementservice.
 8. The computing device of claim 7 further comprising: a scanservice configured to scan a document; wherein the particular image datais not generated by the scan service.
 9. A computer-readable mediumstoring instructions which, when processed by one or more processors,cause: a distributed scan management service executing on a computingdevice and: implementing a distributed scan device protocol and adistributed scan processing protocol, and sending image data and postscan processing instructions to a scan server; and a remote imagereceiver service executing on the computing device and: connecting to aremote image source via a network connection, receiving configurationinformation and the image data from the remote image source, anddetermining the post scan processing instructions based, at least inpart, on the configuration information.
 10. The computer-readable mediumof claim 9, further comprising instructions which, when processed by theone or more processors, cause a configuration service executing on thecomputing device and: authenticating user information, retrieving one ormore sets of post scan processing instructions associated with the userinformation, receiving selection of the post scan processinginstructions, which is a particular set of post scan processinginstructions from the one or more sets of post scan processinginstructions, and associating a configuration identifier with the userinformation and the post scan processing instructions.
 11. Thecomputer-readable medium of claim 10, wherein the configurationinformation comprises the configuration identifier.
 12. Thecomputer-readable medium of claim 9, wherein the configurationinformation comprises an identifier of the post scan processinginstructions.
 13. The computer-readable medium of claim 12, furthercomprising instructions which, when processed by the one or moreprocessors, cause a configuration service executing on the computingdevice and: authenticating default user information; and identifying thepost scan processing instructions, based on the identifier of the postscan processing instructions, among the one or more sets of post scanprocessing instructions associated with the default user information.14. The computer-readable medium of claim 9, further comprisinginstructions which, when processed by the one or more processors, causethe remote image receiver service to: connect to the remote image sourcevia the network connection using Web services; and receive theconfiguration information and the image data from the remote imagesource using Web services.
 15. A computer-readable medium storinginstructions which, when processed by one or more processors, cause: adistributed scan management service executing on a computing device and:implementing a distributed scan device protocol and a distributed scanprocessing protocol, receiving information for post scan processinginstructions, and sending particular image data and the post scanprocessing instructions to a scan server; and an input selection serviceexecuting on a computing device and: identifying one or more inputsources available at the computing device, receiving input sourceinformation identifying a particular input source of the one or moreinput sources, receiving image information identifying the particularimage data residing on the particular input source, retrieving theparticular image data from the particular input source, and making theparticular image data available to the distributed scan managementservice.
 16. The computer-readable medium of claim 15 furthercomprising: instructions which, when processed by the one or moreprocessors, cause a scan service executing on the computing device andbeing configured to scan a document; wherein the particular image datais not generated by the scan service.
 17. A computer-executed methodcomprising: connecting, at a computing device, to a remote image sourcevia a network connection; wherein the computing device implements adistributed scan device protocol and a distributed scan processingprotocol; receiving configuration information and image data from theremote image source; determining post scan processing instructionsbased, at least in part, on the configuration information; and sendingthe image data and the post scan processing instructions to a scanserver.
 18. The computer-executed method of claim 17, furthercomprising: authenticating user information; retrieving one or more setsof post scan processing instructions associated with the userinformation; receiving selection of the post scan processinginstructions, which is a particular set of post scan processinginstructions from the one or more sets of post scan processinginstructions; and associating a configuration identifier with the userinformation and the post scan processing instructions; wherein theconfiguration information comprises the configuration identifier.
 19. Acomputer-executed method comprising: receiving information for post scanprocessing instructions; identifying one or more input sources availableat a computing device; wherein the computing device implements adistributed scan device protocol and a distributed scan processingprotocol; receiving input source information identifying a particularinput source of the one or more input sources; receiving imageinformation identifying particular image data residing on the particularinput source; retrieving the particular image data from the particularinput source; and sending the particular image data and the post scanprocessing instructions to a scan server.
 20. The computer-executedmethod of claim 19, wherein: the computing device is configured with ascan service configured to scan a document; and the particular imagedata is not generated by the scan service.